<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 形参和实参可以一一对应

    // 计算任意两个数的和
    // function fn(a, b) {
    //     return a + b
    // }

    // var result = fn(1, 2)
    // console.log(result);


    // 传入一个或多个数  计算它们的和 (参数不定项)
    // arguments => 函数的内置参数(所有函数都有 => ES6箭头函数除外)
    //           => 函数调用时 所有实际参数的集合(伪数组)

    function fn() {
        // console.log(arguments); // [1, 3, 2, 7, 4, 8, 9, 6, 5]
        // arguments[0] = 100;
        // console.log(arguments);

        // 细节处理 => 不传参(报错)
        if (arguments.length == 0) {
            var err = new Error("Please pass in at least one integer!"); // 创建一个错误对象
            // console.log(err);
            throw err; //抛出错误 => 当前脚本位于错误之后的代码不在执行
        }

        // var sum = 0;
        // for (var i = 0; i < arguments.length; i++) {
        //     var item = arguments[i];
        //     sum += item;
        // }


        var sum = Array.from(arguments).reduce(function (prev, item, index) {
            return prev + item;
        }, 0)

        return sum;

    }

    var result = fn(1, 3, 2, 7, 4, 8, 9, 6, 5)
    console.log(result);

    var result = fn(2, 8, 4, 6)
    console.log(result);

    var result = fn()
    console.log(result);



</script>

</html>